<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // var a = [1,2,3];
        // var b = [4,5,6];
        // //合并成1,2,3,4,5,6
        // // console.log(a.concat(b));
        // //4,5,6,1,2,3
        // console.log(b.concat(a));

        var arr = [85,24,63,45,17,31,96,50];
        function paixu(a){
            //每一次排序由于数组长度在减少，所以要判断一下
            if(a.length<1){
                return a;
            }
            //针对这个数组找到基准值
            //下标
            var index = a.length / 2;
            //求出基准值（不在数组序列中，只是作为一个被比较的条件）
            // console.log(arr[index]);
            //删掉
            //arr.pop / arr.shift / arr.splice
            var value = a.splice(index,1)[0]; // 17
            //建立两个空数组，一个是左边（比较小的值），一个是右边（比较大的值）
            var left = [];
            var right = [];
            //把剩下的所有的数字依次求出和基准值比较
            for(var i = 0; i < a.length;i++){
                // console.log(a[i]);
                if(a[i]<value){
                    left.push(a[i]);
                }else{
                    right.push(a[i]);
                }
            }
            //数组之间的合并 concat
            return paixu(left).concat(value,paixu(right));
        }
        console.log(paixu(arr));
        //在函数内部反复执行其自身:递归函数，一定要有递归的出口
    </script>
</body>
</html>